チームトポロジー 価値あるソフトウェアをすばやく届ける適応型組織設計
https://m.media-amazon.com/images/I/51JxJVl5YXL.jpg
ISBN : 978-4-8207-2963-1
Amazon : https://amzn.to/3LNDIgg
著者 : マシュー・スケルトン、マニュエル・パイス
自身の学びや感想
新たに学んだこと
タックマンモデルは必ずしも正しくない (Acquisition Community Team Dynamics : The Tuckman Model vs. the DAU Model)
改変されたモデルとして DAU モデルが提示されている
ソフトウェアの境界のサイズをチームの認知負荷に合わせる
素早く簡単にチームの認知負荷を知る方法 : チームに対して 「チームは、頼まれた仕事に対して、効果的でタイムリーな対応ができていると思うか?」 と尋ねてみる
改めて、取り組んでいかねばと思ったこと
IT システムの設計と組織の設計は切り離せない → アーキテクトは組織の設計者でもある必要がある (= マネジャーである必要)
ソフトウェアのオーナーシップを、安定した (長続きする) チームに割り当てる
チームのインターフェイスを明確にする (本書ではチーム API と言われている)
次に読みたい本
The DevOps ハンドブック 理論・原則・実践のすべて
Fearless Change アジャイルに効くアイデアを組織に広めるための 48 のパターン
メモ
まえがき
システムが複雑になるにつれ、2 つの設計領域が重要に
システムの設計
組織の設計
コンウェイの法則が基礎にある
はじめに
全体の流れ
PART 1 ではコンウェイの法則について
PART 2 は、業界で実績のある静的なチームのパターンについて
PART 3 は、組織設計を進化させる方法について
本書は下記の影響を受けている
組織はシステムであり、人と技術のインタラクションそのものであるという点
サイバネティクス
システム思考 (特に W. Edwards Deming (エドワード・デミング) が提唱したもの)
適応構造化理論
チームは、その進化と運営の過程で、支援を受けて育成されるべきものであるという点
タックマンモデル
「A Model for Team-Based Organization Performance」 で明らかにされた、チームからなる組織のパフォーマンス
「Acquisition Community Team Dynamics : The Tuckman Model vs. the DAU Model」 で明らかにされた、混乱期はチームのライフサイクルのどこでもおこるという話
『あなたのチームは、機能してますか?』 で明らかにされたインタラクションの典型的な問題
コンウェイの法則やその亜種
大規模ソフトウェアシステムの開発と運用の実践的な成功例
Part 1. デリバリーの手段としてのチーム
1 章 組織図の問題
速いペースのデリバリーとイノベーションの適応の両立には、安定したチーム、効果的なチームパターンとインタラクションが必要
組織図やマトリクスに過度に依存して仕事を分割、管理する組織は失敗しやすい
組織図は実際のコミュニケーションを反映していない
組織図に基づく意思決定は組織の一部分のみに最適化されがち
システム思考では全体の最適化に焦点を置き、仕事のフローに着目し、最大のボトルネックを特定して取り除く
nobuoka.icon 制約理論ぽさもある
『Improvement Performance : How to Manage the White Space on the Organization Chart』 では、継続的なビジネスプロセス改善とマネジメントに言及
少なくとも IT 業界においては、プロダクトとチームを中心に据えるが最近の潮流
『Project to Product』 で提唱されるようなプロジェクトからプロダクトへの流れは重要なマイルストーンのひとつ
ニールズ・プレイギングは、全ての組織に 3 つの組織構造があることを明らかにした
3 つの組織構造
1. 公式な構造 (組織図) : コンプライアンス遵守を円滑にする
2. 非公式な構造 : 個人間の影響力の領域
3. 価値創造構造 : 個人間やチーム間の能力に基づき、実際にどう仕事を終わらせるか
知的労働組織の成功のカギは、非公式な構造と価値創造構造のインタラクションにある
『ティール組織 ― マネジメントの常識を覆す次世代型組織の出現』 や 『HOLACRACY (ホラクラシー) 役職をなくし生産性を上げるまったく新しい組織マネジメント』 なども同様な分類を提唱
チームトポロジーのアプローチでは、非公式な構造と価値創造構造の重要性を認める
必要なのは単一の構造ではなく、チームの成長やチーム間のインタラクションを考慮に入れた、状況に適応可能なモデル
『Guide to Organisation Design : Creating HighPerformance and Adaptable Enterprises』 で紹介される組織設計における経験則
1. やむを得ない理由があるときに設計する
2. 設計判断のために選択肢を用意する
3. 適切な時期に設計する
4. 整合性が取れていない箇所を探す
5. 将来を見据える
マイクロサービスが注目されるようになった 2015 年ごろにコンウェイの法則が再評価
ThoughtWorks のジェームス・ルイスらは逆コンウェイ戦略のアイデアを打ち出した
チームの認知負荷の話 : 認知容量を超える情報は留めておけない
チームの認知負荷を制限する
アジャイル、リーン IT、DevOps のムーブメントは価値を実証したが、従来型の組織はメリットを十分に享受できていない
文化や組織面での変化は場当たり的
2 章 コンウェイの法則が重要な理由
大企業では、モノリシックな共有データベースがビジネス全体を支えている例に遭遇したことがあるはず
当時はそのアーキテクチャに利点はあったが、今もプロジェクト思考やアウトソーシングによるコスト削減、経験不足な若手チームなどのせいで、このアンチパターンが継続
ものごとを分離し、チームの中にとどめておくことが重要
コンウェイの法則より、チーム構造の決定には技術観点が必要
アーキテクトは純粋な技術にとどまらない、組織構造や人事問題に対する発言権が必要 → マネジャーになる必要
コミュニケーションが多いほどいいわけではない → 特定のチーム間における集中的なコミュニケーション
不要なコミュニケーションはなくす
3 章 チームファースト思考
チームの明確な定義 : 5 人~ 9 人のメンバーからなる安定したグループで、共有されたゴールのために働く単位
ソフトウェアの設計、提供、運用のすべての側面を担う
人数の制限はロビン・ダンバーの研究の 「親密な関係を築けるのは 5 人まで」 という結果より (関連 : ダンバー数、三倍の法則)
チームが効果的に働けるようになるには時間がかかる (2 週間~ 3 ヵ月以上)
プロジェクトごとにチームを作り、プロジェクトが終わったら解散するというのは賢明ではない
ブルックスの法則でも言われている通り、人を増やしたからと言ってすぐにキャパシティは増えない (むしろ減る)
ベストなやり方は、アラン・ケリーが 『Project Myopia』 で示したように、チームを安定させ、チームに仕事が流れ込むようにすること
安定したチームがあることで、ソフトウェアのオーナーシップを改善できる
保守の継続性を提供できる
複数のチームに同一のシステムやサブシステムの変更を許すと、変更やそれがもたらす混乱について誰もオーナーシップを発揮しなくなる可能性
オーナーは単一のチームである必要がある
チームメンバーはチームファーストのマインドセットを持つこと
個人のニーズよりもチームのニーズを優先させる
チームの認知負荷を下げる方法
認知負荷に対するチームファーストアプローチは、チームが扱うソフトウェアシステムのサイズを抑えること
素早く簡単にチームの認知負荷を知るには、チームに対して 「チームは、頼まれた仕事に対して、効果的でタイムリーな対応ができていると思うか?」 と尋ねてみると良い
チーム API を設計してチームインタラクションを促す
Part 2. フローを機能させるチームトポロジー
4 章 静的なチームトポロジー
開発、テスト、移行、運用の流れを異なる組織が担当するというサイロ化した状況では、本番環境からのフィードバックをそれぞれの組織が受け取りづらい
1 つのストリームアラインドチームが、開発から運用まですべて担当することで、本番環境からのフィードバックを受けられるようになる
DevOps の本質は、自動化やツールといった技術的な課題の解決ではなく、チーム間の根本的なずれへの対処
DevOps トポロジーカタログは、チームの責任範囲やインターフェイス、技術チーム間のコラボレーションについての会話を始めるのに良い
フィーチャーチームがうまくいくかどうかは状況次第
必要な UX や性能、信頼性を満たして確実にシステムが統合されるように、システム全体に目を光らせる役割が必要
プロダクトチームは、1 つかそれ以上のプロダクトの機能全体を担当する
適切なサポートシステムが必要
それがないとインフラストラクチャやネットワーク、QA などの職能型チームに強く依存するようになってしまう
クラウドチームはプロダクトチームが自律的に動くために必要なセルフサービスを提供することに注力すべき
従来のインフラストラクチャチームの名前が変わっただけでやっていることが同じであればクラウドがもたらす恩恵を得られない
SRE チームは、大規模でこそ意味がある → 開発チームと SRE チームの関係
効果的なチーム構造に影響を与える要素
技術的成熟度と文化的成熟度
組織のサイズやソフトウェアの規模、エンジニアリングの成熟度
フローに最適化したチームにするには、チーム間の依存関係と待ち時間の検出と追跡が不可欠
依存関係には、知識、タスク、リソースの 3 つの異なるカテゴリがある
5 章 4 つの基本的なチームタイプ
チームの種類を以下の 4 つの基本的なチーム種別に減らす → チームトポロジーの基本的なチーム種別
「運用チーム」 を作るのではなく、稼働中のソフトウェアをサポート、運用するストリームアラインドチームと、そのチームのための下位の基盤を提供するプラットフォームチーム、という組み合わせ
安全で速い変更フローに最適化
どんな場合での最低限のプラットフォーム (TVP) を目指すこと (必要以上に大きくすることが多い)
プラットフォームチームは、ユーザーエクスペリエンス (特にデベロッパーエクスペリエンス) に焦点をあてるべし
インシデント発生時
ストリームエリア内で解決できるなら、エリア内での単独での解決
多数のチームに影響がある場合、動的なスウォームやインシデントスクワッドを組織
6 章 チームファーストな境界を決める
密結合のアーキテクチャ → 「責任が明確で自律的なチーム」 の妨げ
節理面
Part 3. イノベーションと高速なデリバリーのためにチームインタラクションを進化させる
7 章 チームインタラクションモード
チームトポロジーのチームインタラクションモード
8 章 組織的センシングでチーム構造を進化させる
環境に合わせて組織が変化する必要 → 組織の設計だけでなく、組織の設計ルール自体も設計すべき
いつチーム構造を進化させるべきか?
1. チームが大きくなりすぎている
チームが大きくなると、チームの中で専門化が引き起こされる
専門化は局所最適化 (「この要求を早くデリバリーする」) のサイクルで強化される
優先すべきことではなく、誰が把握しているかによって計画が左右される → チームの作業フロー全体に悪影響がある可能性 (このレベルの専門化はデリバリーのボトルネック)
チームが担当するシステムの全体を把握しきれなくなる
2. デリバリーのリズムが遅くなり始めている
3. 複数の業務サービスが大量の下位サービスに依存している
チームインタラクションをセンサーやシグナルとして扱うことで、サイバネティックフィードバックシステムを確立
組織的センシングでは、チームやチーム内外のコミュニケーションを組織の感覚器官として利用する
ピーター・ドラッカーが 「外部のための合成感覚器官」 と呼ぶもの
素早く行動するために、環境に関するフィードバックセンサーが必要
ソフトウェアの速い変更フローの維持のために、組織は組織的センシングとサイバネティック制御に投資する必要
ひとつの側面 : IT 運用部門のチームを開発部門のチームの高精度な入力センサーとして利用する
モダンでハイパフォーマンスな組織になる 3 つの方法 (『The DevOps ハンドブック 理論・原則・実践のすべて』)
システム思考
フィードバックループ
継続的な実験と学習の文化
9 章 次世代デジタル運用モデル
チームファースト思考
チームトポロジーアプローチだけでは、効果的な IT には不十分
以下のものが不可欠
健全な組織文化 : 個人やチームレベルで、プロフェッショナルとして成長を促す。 問題について率直に話し、組織として継続的に学ぶ
良いエンジニアリングプラクティス : テストファーストなアプローチ、継続的デリバリーと運用プラクティス、など
健全な投資・財務プラクティス : IT 組織を設備投資 (CapEx) と運用費用 (OpEx) を分断するような悪習を避ける
プロジェクト指向の納期設定やバッチでの予算割り当てなどをできるだけ避ける
ビジネスビジョンの明確化
チームトポロジーのはじめかた
1. チームから始める
ソフトウェアの一部分にオーナーシップを持つには? 不要な認知負荷を減らすには? 他チームのソフトウェアや情報を利用するには? といったことを考える
2. 安定した変更のストリームを特定する
組織で一番重要な変更が流れるようなパイプとなるストリームをいくつか選択する
3. 最低限のプラットフォーム (TVP) を特定する
組織で一番重要なストリーム上で、安定して素早く変更を流すために必要なサービスは?
4. チームコーチング、メンタリングで能力ギャップを埋める
5. 異なるインタラクションモードを共有、練習し、新しい仕事のやり方の背後にある原則を説明する
大規模な組織の変更については 『Fearless Change アジャイルに効くアイデアを組織に広めるための 48 のパターン』 を見ること
#書籍